package com.ruoyi.merchant.service;

import com.ruoyi.merchant.domain.Order;
import com.ruoyi.merchant.domain.dto.OrderCancelDTO;
import com.ruoyi.merchant.domain.dto.OrderQueryDTO;

import java.util.List;
import java.util.Map;

/**
 * 订单Service接口
 */
public interface IOrderService {
    /**
     * 查询订单详情（包含明细）
     */
    Order selectOrderByOrderId(Long orderId);

    /**
     * 查询订单列表
     */
    List<Order> selectOrderList(OrderQueryDTO queryDTO);

    /**
     * 接单
     */
    int acceptOrder(Long orderId, Integer estimatedMin);

    /**
     * 批量接单
     */
    int batchAcceptOrders(Long[] orderIds, Integer estimatedMin);

    /**
     * 开始制作
     */
    int startMaking(Long orderId);

    /**
     * 制作完成（待取餐）
     */
    int orderReady(Long orderId);

    /**
     * 完成订单
     */
    int completeOrder(Long orderId);

    /**
     * 取消订单
     */
    int cancelOrder(OrderCancelDTO cancelDTO);

    /**
     * 订单统计（按状态）
     */
    Map<String, Object> countOrderByStatus();

    /**
     * 今日订单概览
     */
    Map<String, Object> getTodaySummary();

    /**
     * 营业额统计
     */
    Map<String, Object> getOrderAmountStatistics(String startTime, String endTime);

    /**
     * 打印订单
     */
    int printOrder(Long orderId, Long printerId);
}
